From 2ba89256f4436a2b4930709c5696008adc2d8b93 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 16 May 2014 19:59:31 +0200 Subject: [PATCH] texthandle: Make a bigger hit area around texthandles The hit area now extends to all sides around the handle, instead of just towards where the text is. This makes it easier to grab handles once shown. --- gtk/gtktexthandle.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c index 06347499dc..226198732e 100644 --- a/gtk/gtktexthandle.c +++ b/gtk/gtktexthandle.c @@ -102,11 +102,14 @@ _gtk_text_handle_draw (GtkTextHandle *handle, priv = handle->priv; context = gtk_widget_get_style_context (priv->parent); + _gtk_text_handle_get_size (handle, &width, &height); cairo_save (cr); if (pos == GTK_TEXT_HANDLE_POSITION_SELECTION_END) - cairo_translate (cr, 0, priv->windows[pos].pointing_to.height); + cairo_translate (cr, width, priv->windows[pos].pointing_to.height); + else + cairo_translate (cr, width, height); gtk_style_context_save (context); gtk_style_context_add_class (context, @@ -125,7 +128,6 @@ _gtk_text_handle_draw (GtkTextHandle *handle, gtk_style_context_add_class (context, GTK_STYLE_CLASS_TOP); - _gtk_text_handle_get_size (handle, &width, &height); gtk_render_background (context, cr, 0, 0, width, height); gtk_style_context_restore (context); @@ -313,6 +315,13 @@ _gtk_text_handle_update (GtkTextHandle *handle, rect.width = width; rect.height = 0; + /* Make the window 3 times as wide, and 2 times as high (plus + * handle_window->pointing_to.height), the handle will be rendered + * in the center. Making the rest an invisible input area. + */ + width *= 3; + height *= 2; + _handle_update_child_visible (handle, pos); window = gtk_widget_get_parent (handle_window->widget); -- 2.30.2